package cn.yuanqiao.archive.bianyan.mapper;

import cn.yuanqiao.archive.bianyan.domain.YqDaGerenKu;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 档案资源库Mapper接口
 *
 * @ProjectName: JZSDAS
 * @Package: cn.yuanqiao.archive.bianyan.mapper
 * @ClassName: YqDaGerenKuMapper
 * @Author: lenovo
 * @Description: hbWang
 * @Date: 2023/9/18 17:17
 * @Version: 1.0
 */
public interface YqDaGerenKuMapper {
    /**
     * 查询档案资源库
     *
     * @param id 档案资源库主键
     * @return 档案资源库
     */
    public YqDaGerenKu selectYqDaGerenKuById(@Param("id") String id, @Param("tableName") String tableName);


    /**
     * 查询档案资源库
     *
     * @param typeState 资料库状态
     * @return 档案资源库
     */
    public List<YqDaGerenKu> selectDaGerenKuTypeState(@Param("typeState") String typeState, @Param("tableName") String tableName);

    /**
     * 查询档案资源库
     *
     * @param daId 档案id
     * @return 档案资源库
     */
    public YqDaGerenKu selectDaId(@Param("daId") String daId, @Param("tableName") String tableName);

    /**
     * 查询档案资源库列表
     *
     * @param data 档案资源库
     * @return 档案资源库集合
     */
    public List<YqDaGerenKu> selectYqDaGerenKuList(@Param("data") YqDaGerenKu data, @Param("tableName") String tableName);

    /**
     * 查询专题库列表
     *
     * @param daTitle
     * @param tableName
     * @param id
     * @param tableNameTp
     * @return
     */
    public List<YqDaGerenKu> selectZTDataList(@Param("daTitle") String daTitle, @Param("tableName") String tableName,
                                              @Param("id") String id, @Param("tableNameTp") String tableNameTp);

    /**
     * 查公共库列表
     *
     * @param daTitle
     * @param tableName
     * @param sql
     * @param datableName
     * @return
     */
    public List<Map<String, Object>> selectCommunalList(@Param("files") String daTitle, @Param("tableName") String tableName,
                                                        @Param("datableName") String datableName, @Param("sql") String sql,
                                                        @Param("orderBy") String orderBy, @Param("subId") String subId);

    List<Map<String, Object>> selectLeftJoinTableData(@Param("field") String field, @Param("sql") String sql, @Param("tableName") String tableName);

    /**
     * 根据档案id查询新
     * @param id
     * @param tableName
     * @return
     */
     List<YqDaGerenKu> selectDaIdS(@Param("ids") String[] id, @Param("tableName") String tableName);


    List<YqDaGerenKu> selectDaList(@Param("tableName") String tableName);


    /**
     * 新增档案资源库
     *
     * @param data 档案资源库
     * @return 结果
     */
    public int insertYqDaGerenKu(@Param("data") YqDaGerenKu data, @Param("tableName") String tableName);

    /**
     * 修改档案资源库
     *
     * @param data 档案资源库
     * @return 结果
     */
    public int updateYqDaGerenKu(@Param("data") YqDaGerenKu data, @Param("tableName") String tableName);

    /**
     * 修改档案资源库状态
     *
     * @param ids 档案资源库id集合
     * @return 结果
     */
    public int updateYqDaGerenKuState(@Param("ids") String[] ids, @Param("typeState") String typeState,
                                      @Param("tableName") String tableName);

    /**
     * 移除公共库
     *
     * @param ids 档案id
     * @return 结果
     */
    public int updateYqDaGerenKuremove(@Param("ids") String[] ids, @Param("typeState") String typeState,
                                       @Param("tableName") String tableName);

    /**
     * 删除档案资源库
     *
     * @param id 档案资源库主键
     * @return 结果
     */
    public int deleteYqDaGerenKuById(@Param("id") String id, @Param("tableName") String tableName);

    /**
     * 批量删除档案资源库
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteYqDaGerenKuByIds(@Param("ids") String[] ids, @Param("tableName") String tableName);
}
